/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.gestion_jeu;

   
/**
 *
 * @author ANNAS
 */
public class FactoryJoueur implements FactoryJoueurIF {
    private static FactoryJoueur instance;

     /**
     * Récupération de l'instance
     */
    public static FactoryJoueur getInstance()
    {
        if(FactoryJoueur.instance==null)
            FactoryJoueur.instance = new FactoryJoueur();
        return instance;
    }
    
    private FactoryJoueur()
    {
        
    }

    /**
     * Constructeur
     * @param type
     *      type du joueur (reel, reseau ou virtuelle)
     * @param p
     *      instance de partie
     * @param nom
     *      nom du joueur
     * @return 
     *      retourne un joueur
     */
    public Joueur createJoueur(Type type, Partie p, String nom) throws Exception {
       if(type == FactoryJoueur.Type.REEL)
           return new JoueurReel(p, nom);
       else if(type == FactoryJoueur.Type.RESEAU)
           return new JoueurReseau(p,nom);
       else if(type == FactoryJoueur.Type.VIRTUELLE)
           return new JoueurVirtuelle(p,nom);
       else
           throw new Exception("Le type n'existe pas!");
    }

    
}
